{# Voice > Models (overseer_ai_voice): one tight table on the canvas, narrowed by the filters with no request (``data-facets``): what the active profile uses, every speech, hearing and live model, every voice. A row plays on a model that speaks it (``speak_button``, one player at a time) and Use puts it on the profile. Below, a line said in a chosen voice and a file transcribed. #} {% from "components/macros/chat.html" import speak_button %} {% from "components/macros/form.html" import action, checklist, file_button, filter_input, primary_button %} {% from "components/macros/layout.html" import chart_dot %} {% from "pages/overseer/_macros.html" import rows_scroller %} {% set head = "px-3 py-1.5 text-left font-medium" %} {% set cell = "px-3 py-1 whitespace-nowrap truncate" %}
| Kind | Provider | Name | Details | Plays on | Price / 1M | Actions |
|---|---|---|---|---|---|---|
| {{ row.label }} | {{ chart_dot(row.color) }}{{ row.provider_name }} | {{ row.name }} | {{ row.detail }} | {{ row.plays_on or "" }} | {{ row.price or "" }} | {%- if row.blocked %}{{ row.blocked }}{% endif -%} {%- if row.speak %}{{ speak_button(row.speak, "align-middle text-aegis-muted hover:text-aegis-text") }}{% endif -%} {%- if row.use %} {%- elif row.used and row.kind != "use" %}in use{% endif -%} |